package com.mccrea.principle.inversion;

/**
 * @Classname DependecyInversion
 * @Description
 * 解析： 一、简单，容易想到
 *       二、假设需要接受别的信息（QQ,微信等），则需要增加类， Person类中需要增加新的方法。
 * 解决思路： 引入一个抽象的接口IReceive, 表示接受者， Person与接口IReceive发生依赖， 所有信息
 *           （QQ， 微信， Email） 等实现IReceive。这样就符合依赖倒转原则。
 * @Date 2021/5/6 0006 16:50
 * @Created by Mccrea_Gao
 * @see com.mccrea.principle.inversion.improve.DependencyInversion
 */
public class DependencyInversion {
    public static void main(String[] args) {
        Person person = new Person();
        person.receive(new Email());
    }
}

class Email {
    public String getInfo() {
        return "电子邮件信息====";
    }
}

/**
 * 完成Person接受消息功能方式一完成
 *
 */
class Person {
    public void receive(Email email) {
        System.out.println(email.getInfo());
    }
}
